package com.jahepi.android.actividad.viaje;

import java.util.ArrayList;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

import com.jahepi.android.AdaptadorGenerico;
import com.jahepi.android.R;
import com.jahepi.android.actividad.ActividadAuth;
import com.jahepi.android.dto.Acarreo;
import com.jahepi.android.dto.Banco;

public class BancoListaActividad extends ActividadAuth implements OnItemClickListener {
	
	protected static String TAG = "BancoListaActividad";
	
	protected ListView bancoListView;
	protected BancoAdapter adapter;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.lista);
		
		TextView listaTextView = (TextView) findViewById(R.id.listaTextView);
		listaTextView.setText("Listado de Bancos");
		
		Button bancoListaButton = (Button) findViewById(R.id.listaButton);
		bancoListaButton.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				startActivity(new Intent(BancoListaActividad.this, FrenteListaActividad.class));
			}		
		});
		
		ArrayList<Banco> bancos = app.obtenerBancos(app.getViajeFrenteId());
		
		if(bancos.isEmpty()) {
			toast(this, "No se pudieron encontrar bancos activos!");
		}
		
		adapter = new BancoAdapter(this, R.layout.fila);
		adapter.addCollection(bancos);
		
		bancoListView = (ListView) findViewById(R.id.listaListView);
		bancoListView.setOnItemClickListener(this);
		
		bancoListView.setAdapter(adapter);
	}
	
	public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
		Log.d(TAG, "Click en un banco!");
		Banco banco = (Banco) adapter.getItem(position);
		app.setViajeBanco(banco);
		
		ArrayList<Acarreo> acarreos = app.obtenerAcarreos();
		if(acarreos.size() == 0) {
			toast(this, "Error: No hay acarreos asignados en este frente y banco!");
		} else if(acarreos.size() == 1) {
			Acarreo acarreo = acarreos.get(0);
			app.setViajeAcarreo(acarreo);
			if(acarreo.incluyeMaterial()) {
				app.setViajePendiente(false);
				app.setViajePorKm();
				startActivity(new Intent(this, ViajeConfirmacionActividad.class));
			} else {
				startActivity(new Intent(this, MaterialListaActividad.class));
			}
		} else if (acarreos.size() > 1) {
			startActivity(new Intent(this, AcarreoListaActividad.class));
		}
	}
	
	protected class BancoAdapter extends AdaptadorGenerico {
		
		public BancoAdapter(Context context, int textViewResourceId) {
			super(context, textViewResourceId);
		}

		@Override
		protected void populate(View view, int position) {
			Banco banco = (Banco) getItem(position);
			TextView filaTextView = (TextView) view.findViewById(R.id.filaTextView);
			filaTextView.setText(banco.getNombre() + ", " + banco.getDistancia() + " KM");
		}		
	}
}
